Skip to main content

Agent 记忆

同一个用户,上周说过"我对花生过敏",这周问"推荐个川菜馆"。会话结束时 messages 数组被丢掉,下一次请求里没有任何关于花生的字节 —— 模型不是忘了,是根本没收到。

记忆层就是补上这一段:从已经结束的会话里挑出值得留下的东西,存到会话之外,在下一次需要时放回上下文。本专题拆解这件事的四个动作 —— 挑什么、怎么存、怎么改、怎么取回 —— 以及它们各自会怎么坏。

先约定几个词,本专题全程使用:

意思
上下文(context)这一次请求真正发给模型的那串 token。它是易失的,请求结束就没了
记忆(memory)存在上下文之外、能跨会话活下来的东西。记忆本身不产生效果,只有被读回上下文才有效果
抽取(extraction)用一次额外的模型调用,从对话里挑出"值得记住的事实"。绝大多数记忆库的写入路径第一步
情景 / 语义 / 程序记忆记忆的三种分型:发生过什么、事实是什么、该怎么做。01 篇细讲
巩固(consolidation)新事实进来时,跟已有记忆比对、合并、改写或作废的过程。冲突消解发生在这里
双时间轴(bi-temporal)同时记录"事实在现实中何时成立"和"系统何时知道这件事"两条时间线。03 篇细讲
热路径 / 后台记忆写入的两种时机:在用户等回复的这一轮里写(热路径),还是回复完再异步写(后台)
记忆投毒攻击者诱导 Agent 把伪造事实写进记忆,之后每一轮都被读回来。07 篇细讲

一、这一层要解决的六个问题

六个问题递进 —— 前一个没定下来,后一个的方案就没有判据① 边界在哪跟上下文的分工跟 RAG 的分工三种记忆分型01 篇② 写什��么抽取还是全量存热路径还是后台一条记忆多少钱02 篇③ 变了怎么办前后矛盾的两条删除还是作废双时间轴03 篇④ 怎么取回向量为何不够图检索加什么召回预算04 篇⑤ 存在哪文件还是数据库谁来读写它八个实现横评05 · 06 篇⑥ 会怎么坏投毒与错误固化评测读不读得懂选型与落地07 篇最常见的翻车是跳过①直接选产品 —— 把本该走 RAG 的文档检索需求接到记忆库上,抽取一遍再存一遍,成本翻倍而召回更差。②排在④前面,是因为写入决定了检索的天花板:抽取阶段丢掉的信息,任何检索策略都找不回来。
六个问题对应七篇正文。真正决定效果上限的是②,业界的主要分歧也集中在那里 —— 该由模型抽取事实,还是原样存下整段对话。

二、七篇正文

#标题覆盖内容
01记忆与上下文的边界四个常被混作一谈的东西、情景 / 语义 / 程序三种分型、Profile 与 Collection 两种存储形态、什么时候不该上记忆层
02写入路径:什么该被记下来抽取式与原样存两条路线、mem0 从四操作巩固转向纯追加的完整源码、热路径与后台的取舍、UUID 反幻觉映射、写入成本估算
03冲突、遗忘与时间事实变化的四种形态、硬删除为什么不可行、Graphiti 双时间轴的四个字段、边失效而非删除、遗忘策略与它的代价
04读取路径:向量、图与结构化纯向量检索的四类失效、Graphiti 三路混合检索与五种重排、召回预算怎么定、注入位置对缓存的影响
05文件系统式记忆Anthropic memory 工具的六个命令与路径穿越防护、Letta 从数据库块转向 git 版本化目录、文件式的边界在哪
06开源实现横评八个项目的许可证与部署重量实测、两个选型陷阱(Zep 已不是开源服务端、Letta 换了语言换了仓库)、存储依赖对照
07失败模式、评测与选型记忆投毒与错误固化、跨租户串号、LoCoMo 三方争议始末、MemDelta 的对照实验结论、选型决策树与四步落地
按你手上的症状挑 —— 七篇不必按顺序读不确定这个需求该不该上记忆层先跟上下文、RAG、持久化执行划清界限01记忆存进去了,问的时候取不出来纯向量的失效场景与混合检索04记了一大堆没用的,账单还很贵抽取粒度、写入时机与单条成本02不想为记忆再引一套数据库文件式记忆能撑到哪一步05用户改了信息,旧的那条还在被读回作废语义与双时间轴03要选一个产品,不知道从何比起许可证、存储依赖、两个选型陷阱06怀疑记忆被污染,或看不懂榜单数字投毒路径与三方评测争议复盘07从零开始建这一层按顺序读,落地步骤在 07 篇第六节全读
左列是"存不进去"类问题,右列是"取不出来 / 选不下来"类问题。绝大多数线上事故出在左下角那一格 —— 事实变了但旧记忆没作废。

只读两篇的话:02 篇(写入路径)和 07 篇(失败模式与评测)。前者决定你能记住什么,后者决定你能不能相信自己记住的东西。

三、三个需要先知道的前提

3.1 这个领域一年换一代,模型记忆里的答案基本都过期

本专题的所有数据实测于 2026-08-25。三个最容易踩的断点:

你可能记得的现在的实际情况
getzep/zep 是 Zep 的开源服务端该仓库现在只放 Zep Cloud 的示例与集成代码,README 首段明写 "This repository is not Zep's product or service"。开源的部分是 getzep/graphiti
letta-ai/letta 是 Letta(原 MemGPT)的 Python 服务端该仓库只剩一个落地页,V1 服务端源码退役到 archive 分支且不再修 bug。当前源码在 letta-ai/letta-code,TypeScript 写的,2025-10-25 建仓
mem0 的写入是 ADD / UPDATE / DELETE / NONE 四选一主分支的默认路径已换成纯追加的 ADDITIVE_EXTRACTION_PROMPT,只产生 ADD,用 linked_memory_ids 挂关系。四操作的提示词还在文件里,但不再是默认

三条都在 06 篇展开,第三条的源码在 02 篇

3.2 记忆没有语义约定,和可观测性不一样

Agent 可观测性那一层至少有 gen_ai.* 和 OpenInference 两套规范可以对齐。记忆层没有对应的东西:每个项目自己定义记忆条目长什么样、有哪些字段、检索接口叫什么。

后果是换实现等于重做数据迁移。mem0 的一条记忆是带 hashmetadata 的一段文本,Graphiti 的一条记忆是带四个时间字段的一条图边,两者之间没有无损转换。选型时把"以后换不换得掉"当成一个真实成本,而不是假设有标准兜底。

3.3 榜单数字目前不可比

LoCoMo 是这个领域引用最多的基准。同一个系统在同一个基准上,公开材料里出现过四个分数,最低 58.44%、最高 84% —— 不是实现不同,是评测口径和配置方式不同。完整的争议链条在 07 篇第四节。

在读到那篇之前,先记住一条:看到"我们在 LoCoMo 上比 X 高 26%"这类表述,先问用的哪个子集、谁跑的 X、用的什么嵌入模型。2026 年的对照实验(MemDelta)显示,只换嵌入模型这一个变量就能让结论反向。

四、本专题拆解的对象

全部数据 gh api 实测于 2026-08-25,许可证逐个打开 LICENSE 文件读。

4.1 八个开源实现

项目许可证(实读)形态
mem0ai/mem064,007Apache-2.0抽取式记忆层,向量库 + 可选图库,mem0ai 2.0.19
getzep/graphiti30,291Apache-2.0时序知识图引擎,Zep 的开源内核,graphiti-core 0.29.3
topoteretes/cognee30,257Apache-2.0知识图 + 向量的记忆平台,cognee 1.5.3
supermemoryai/supermemory29,056MITTypeScript,记忆 + RAG + 连接器一体
letta-ai/letta-code3,116Apache-2.0Letta(原 MemGPT)当前源码,git 版本化的记忆目录
NevaMind-AI/memU14,344Apache-2.0(gh 返回 NOASSERTION,实读 LICENSE.txt把记忆存成 Wiki 文件,挂到各家 Agent 客户端上
MemTensor/MemOS10,971Apache-2.0统一记忆 API,图结构可读可改
langchain-ai/langmem1,624MITLangGraph 生态的记忆原语,PyPI 仍停在 0.0.30

横评在 06 篇注意 memU 那一行 —— GitHub API 判不出许可证是因为文件名是 LICENSE.txt 而不是 LICENSE,正文是标准 Apache-2.0。

4.2 一个官方工具接口

接口标识作用
Anthropic memory 工具memory_20250818客户端执行的文件式记忆,六个命令(view / create / str_replace / insert / delete / rename),作用在 /memories 前缀下

拆解在 05 篇。它不是一套规范 —— 只有 Anthropic 一家实现,但它代表了"记忆就是一堆文件"这条路线最干净的形态。

4.3 五篇论文

论文arXiv时间在本专题里的角色
Evaluating Very Long-Term Conversational Memory2402.177532024-02LoCoMo 数据集的出处,平均 300 轮、约 9K token、最多 35 个会话
Zep: A Temporal Knowledge Graph Architecture2501.139562025-01双时间轴建模的出处,DMR 上 94.8% 对 MemGPT 的 93.4%
Mem0: Building Production-Ready AI Agents2504.194132025-04抽取 + 巩固两阶段架构的出处
MemMachine2604.048532026-04"少抽取、原样存整段"路线的代表
MemDelta2606.299142026-06单变量对照评测协议,07 篇争议一节的主要依据

五、与其他专题的关系

  • Agent 安全 07 - 记忆与上下文外泄:那一篇讲记忆里的东西怎么泄出去,本专题 07 篇讲脏东西怎么写进来,两个方向合起来才是完整的记忆威胁面
  • Agent 持久化执行:都在做"跨进程保管状态",但保管的东西不同 —— 那一层存的是执行到哪一步,本层存的是学到了什么。01 篇第二节逐条对比
  • Agent 可观测性 06 - 成本归因:记忆的写入是额外的模型调用,它在账单里通常被算进业务 Agent 头上,02 篇会给拆开的口径
  • Agent 上下文工程:记忆读回来之后往哪儿放、占多少预算、会不会打掉前缀缓存,是那个专题的题目

← 回到 Agent Infra 板块总览